home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cocktail / cg.lha / cg / src / Makefile < prev    next >
Makefile  |  1992-11-24  |  5KB  |  173 lines

  1. BIN    = $(HOME)/bin
  2. LIB    = $(HOME)/lib
  3. MC    = MC
  4.  
  5. SED    = sed -e 's/!!$$/WriteNl (f);/' \
  6.           -e 's/!\([^!]*\)!$$/WriteS (f, "\1"); WriteNl (f);/' \
  7.           -e 's/!\([^!]*\)!/WriteS (f, "\1");/g' \
  8.           -e "s/@\([^@]*\)@$$/WriteS (f, '\1'); WriteNl (f);/" \
  9.           -e "s/@\([^@]*\)@/WriteS (f, '\1');/g"
  10.  
  11. SOURCES    = Scanner.mi Scanner.md Errors.md Errors.mi \
  12.       Parser.md Parser.mi Tree.md Tree.mi Tree2.md Tree2.mi GramMod.md \
  13.       GramMod.mi Semantics.mi Order.mi Optimize.mi Dialog.mi \
  14.       TreeMod1.mi TreeMod2.mi EvalMod.mi EvalMod2.mi EvalMod3.mi \
  15.       GramC.md GramC.mi TreeC1.mi TreeC2.mi EvalC.mi EvalC2.mi EvalC3.mi cg.mi \
  16.       GramYacc.md GramYacc.mi
  17.  
  18. all:    cg_boot
  19.  
  20. cg:    $(SOURCES) cg_boot
  21.  
  22. cg_boot:
  23.     echo p cg | mc -d ../../reuse/src
  24.  
  25. # swap all byte pairs of the files Scanner.Tab and Parser.Tab
  26.  
  27. bin.conv:
  28.     dd conv=swab < Scanner.Tab > .Scanner.Tab; mv .Scanner.Tab Scanner.Tab
  29.     dd conv=swab < Parser.Tab > .Parser.Tab; mv .Parser.Tab Parser.Tab
  30.  
  31. Scanner.md Scanner.mi:    cg.rex
  32.     rex -d cg.rex;
  33.  
  34. Parser.md:    cg.lalr
  35.     lalr -b -d cg.lalr;
  36.  
  37. Parser.mi:    cg.lalr
  38.     lalr -b -v cg.lalr;
  39.  
  40. Errors.mi:    Errors.0 \
  41.     /tmp/cg/consts1 /tmp/cg/writes1 /tmp/cg/consts2 /tmp/cg/writes2
  42.     /lib/cpp -P Errors.0 Errors.mi
  43.  
  44. Tree.md:    cg.cg
  45.     echo SELECT AstIn Ast Common Cg Ag | cat - cg.cg | cg -diqmR
  46.  
  47. Tree.mi:    cg.cg
  48.     echo SELECT AstIn Ast Common Cg Ag | cat - cg.cg | cg -iqmR
  49.  
  50. Tree2.md:    cg.cg
  51.     echo SUBUNIT Tree2 SELECT AstIn Ast | cat - cg.cg | cg -dip
  52.  
  53. Tree2.mi:    cg.cg
  54.     echo SUBUNIT Tree2 SELECT AstIn Ast | cat - cg.cg | cg -ip
  55.  
  56. Tree.TS:    cg.cg
  57.     echo SELECT AstIn Ast Common Cg Ag | cat - cg.cg | cg -4
  58.  
  59. GramMod.md GramMod.mi:    mod0.puma Tree.TS
  60.     $(SED) < mod0.puma | puma -dinw;
  61.  
  62. GramC.md GramC.mi:    c0.puma Tree.TS
  63.     $(SED) < c0.puma | puma -dinw;
  64.  
  65. GramYacc.md GramYacc.mi:    y0.puma Tree.TS
  66.     $(SED) < y0.puma | puma -dinw;
  67.  
  68. Semantics.md Semantics.mi /tmp/cg/consts1 /tmp/cg/writes1:    sem.puma Tree.TS /tmp/cg
  69.     awk -f cg.awk1 < sem.puma > /tmp/cg/sem
  70.     /lib/cpp -P < /tmp/cg/sem | puma -dinw;
  71.     sed -f cg.sed2 < /tmp/cg/writes01 > /tmp/cg/writes1
  72.  
  73. Order.md Order.mi /tmp/cg/consts2 /tmp/cg/writes2:    oag.puma Tree.TS /tmp/cg
  74.     awk -f cg.awk2 < oag.puma > /tmp/cg/oag
  75.     /lib/cpp -P < /tmp/cg/oag | puma -dinw;
  76.     sed -f cg.sed2 < /tmp/cg/writes02 > /tmp/cg/writes2
  77.  
  78. Optimize.md Optimize.mi:    opt.puma Tree.TS
  79.     /lib/cpp -P < opt.puma | puma -dinw;
  80.  
  81. Dialog.mi:    Dialog.sed
  82.     $(SED) < Dialog.sed > Dialog.mi
  83.  
  84. TreeMod1.md TreeMod1.mi:    mod1.puma Tree.TS
  85.     $(SED) < mod1.puma | puma -dinw;
  86.  
  87. TreeMod2.md TreeMod2.mi:    mod2.puma Tree.TS
  88.     $(SED) < mod2.puma | puma -dinw;
  89.  
  90. EvalMod.md EvalMod.mi:    mod3.puma Tree.TS
  91.     $(SED) < mod3.puma | puma -dinw;
  92.  
  93. EvalMod2.md EvalMod2.mi:    mod4.puma Tree.TS
  94.     $(SED) < mod4.puma | puma -dinw;
  95.  
  96. EvalMod3.md EvalMod3.mi:    mod5.puma Tree.TS
  97.     $(SED) < mod5.puma | puma -dinw;
  98.  
  99. TreeC1.md TreeC1.mi:    c1.puma Tree.TS
  100.     $(SED) < c1.puma | puma -dinw;
  101.  
  102. TreeC2.md TreeC2.mi:    c2.puma Tree.TS
  103.     $(SED) < c2.puma | puma -dinw;
  104.  
  105. EvalC.md EvalC.mi:    c3.puma Tree.TS
  106.     $(SED) < c3.puma | puma -dinw;
  107.  
  108. EvalC2.md EvalC2.mi:    c4.puma Tree.TS
  109.     $(SED) < c4.puma | puma -dinw;
  110.  
  111. EvalC3.md EvalC3.mi:    c5.puma Tree.TS
  112.     $(SED) < c5.puma | puma -dinw;
  113.  
  114. cg.mi:    cg.sed
  115.     $(SED) < cg.sed > cg.mi
  116.  
  117. install:    cg cg.sh $(LIB)/cg
  118.     if test $(LIB) = $(BIN); then echo error: BIN = LIB; false; else true; fi
  119.     sed 's;LIB;$(LIB);g' < cg.sh > $(BIN)/cg
  120.     cp $(BIN)/cg $(BIN)/ag
  121.     cp $(BIN)/cg $(BIN)/ast
  122.     chmod a+rx $(BIN)/cg $(BIN)/ast $(BIN)/ag
  123.     install -c -m 755 gmdcpp $(BIN)
  124.     install -c -m 755 gmdupd $(BIN)
  125.     install -c -m 755 gmdrm $(BIN)
  126.     install -c -s -m 755 cg $(LIB)/cg
  127.     install -c -m 644 Scanner.Tab $(LIB)/cg
  128.     install -c -m 644 Parser.Tab $(LIB)/cg
  129.     install -c -m 644 TypeTab.c $(LIB)/cg
  130.     install -c -m 644 TypeTab.m $(LIB)/cg
  131.  
  132. # installation directories
  133.  
  134. $(LIB)/cg:    $(LIB)
  135.     sh -c "if test ! -d $(LIB)/cg; then mkdir $(LIB)/cg; else true; fi"
  136.  
  137. /tmp/cg:    /tmp
  138.     sh -c "if test ! -d /tmp/cg; then mkdir /tmp/cg; else true; fi"
  139.  
  140. m2c:
  141.     # co RCS/*
  142.     make $(SOURCES)
  143.     rm -f ../m2c/*.[hc]
  144.     cp [SP]*Tab TypeTab.[mc] gmd* ../m2c
  145.     ln *.m[id] ../m2c
  146.     cd ../m2c; make sources M2FLAGS="-c -d../../reuse/src"
  147.     cd ../m2c; rm -f *.m[id]
  148.  
  149. # support for mkid
  150.  
  151. cgId:    cg.rex
  152.     echo SCANNER cgId | cat - cg.rex | \
  153.     sed 's/\(RETURN.*Ident\)/yyEcho; IO.WriteNl (IO.StdOutput); \1/' | \
  154.     $(BIN).t/rex -sd;
  155.     sed 's/@/cgId/' < ../../front/src/Id.mi > cgIdDrv.mi
  156.     echo p cgIdDrv | mc -d ../../reuse/src
  157.     mv cgIdDrv cgId
  158.  
  159. installId:    cgId $(LIB)/Id
  160.     echo exec $(LIB)/Id/cgId -l$(LIB)/Id "2> /dev/null" > $(BIN)/cgId
  161.     chmod a+rx $(BIN)/cgId
  162.     install -c -m 644 cgId.Tab $(LIB)/Id
  163.     install -c -s -m 755 cgId $(LIB)/Id
  164.  
  165. $(LIB)/Id:    $(LIB)
  166.     sh -c "if test ! -d $(LIB)/Id; then mkdir $(LIB)/Id; else true; fi"
  167.  
  168. cleanId:
  169.     rm -f cgId*
  170.  
  171. clean:    cleanId
  172.     rm -f _Debug core *.[dior] [A-SU-Za-z]*.m *.bak
  173.